Personal computers have three general tiers of memory: cache memory, system memory, and long-term storage. Cache memory is often located on the same chip as the processor to provide the highest possible performance. Cache memory is designed to offer high access bandwidth and low latency, but due to cost and space limitations, this type of memory is often relatively small. System memory, on the other hand, is somewhat larger, usually requiring the memory to be located elsewhere on the motherboard. The access bandwidth and latency of system memory are more moderate than cache memory. Both cache memory and system memory are generally implemented using a volatile memory technology, i.e., a memory technology that is unable to preserve stored information in the absence of electrical power. A common example of volatile memory technology is random access memory (RAM), such as dynamic RAM (DRAM) and static RAM (SRAM).
In personal computers, long-term storage is provided by non-volatile memory technology. Long-term storage tends to be much larger (often about 100× larger) than system memory, but also tends to suffer from a lower access bandwidth and a much higher latency. Examples of non-volatile memory include magnetic media (disk drives), optical media (compact discs), flash memory, read-only memory (ROM), and programmable ROM (PROM).
Latency and access bandwidth are factors that contribute to access time, i.e., the average time required for a processor to acquire a desired portion of data. As such, the latency values strongly affect the computer's performance. The latency of cache memory is generally on the order of a few processor clock cycles (e.g., about a nanosecond), while the latency for system memory is on the order of ten memory bus clock cycles (e.g., about fifty nanoseconds). By contrast, the latency of a high-performance hard disk drive is on the order of five milliseconds, or about 100,000 times the latency of system memory.
In many instances, latency and access bandwidth associated with long-term storage cause it to be a limiting factor in the computer's performance. Insufficient availability due to conflicting read and writes cause long-term storage to be a bottleneck in the system. Caching technology offers the ability to reduce read accesses to long-term storage. That is, caching techniques may be used to copy commonly-used data (or data that is statistically likely to be used) from long-term storage to system memory and thence to cache memory, thereby reducing the frequency with which data must be read from long-term storage.
As previously noted, however, the system memory and cache memory employ volatile memory technologies. Consequently, as data is modified and new data is generated, caching techniques provide for the prompt writing of such data back to long-term storage to minimize lost data in the event of sudden power loss. Such “write-through” caching techniques fail to reduce the number of write accesses to long-term storage. Nevertheless, there do exist “write-back” caching techniques that permit changes to data in volatile memory to accumulate, enabling multiple modifications to be represented in a single write access to long-term storage. Despite the enhanced performance offered by such techniques, they have not been widely adopted in personal computers due to the enhanced risk of data loss in the event of sudden power loss or a system crash.
Though caching techniques offer enhanced performance, there still exists an initial investment of access time to move the data from one tier to the next. The latency and access time for retrieving data from long-term storage is readily perceptible to the user. Moreover, the delay may be particularly annoying at boot-up time when the computer must copy operating system software from long-term storage, usually followed immediately by one or more additional retrieval periods to retrieve commonly-used applications that the user wishes to run and to otherwise restore the system to the state at which it was in before it was powered down.
While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the drawings and detailed description thereto are not intended to limit the invention to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope of the present invention as defined by the appended claims.